impl<E, S: Encoder<E>> Encodable<S, E> for EncodablePackageId {
fn encode(&self, s: &mut S) -> Result<(), E> {
let mut out = format!("{} {}", self.name, self.version);
- self.source.as_ref().map(|s| {
- out.push_str(format!(" ({})", s.to_url()).as_slice())
- });
+ if let Some(ref s) = self.source {
+ out.push_str(format!(" ({})", s.to_url()).as_slice());
+ }
out.encode(s)
}
}
#![feature(macro_rules, phase)]
#![feature(default_type_params)]
+#![feature(if_let)]
#![deny(bad_style)]
extern crate libc;
shell: &mut MultiShell) {
match result {
Err(e) => handle_error(e, shell),
- Ok(encodable) => {
- encodable.map(|encodable| {
- let encoded = json::encode(&encodable);
- println!("{}", encoded);
- });
+ Ok(Some(encodable)) => {
+ let encoded = json::encode(&encodable);
+ println!("{}", encoded);
}
+ _ => {}
}
}
if unknown {
let _ = shell.error(error.to_string());
}
- error.detail().map(|detail| {
+ if let Some(detail) = error.detail() {
let _ = shell.err().say(format!("{}", detail), BLACK);
- });
- error.cause().map(|err| {
+ }
+ if let Some(err) = error.cause() {
let _ = handle_cause(err, shell);
- });
+ }
Ok(())
});
let _ = shell.err().say("\nCaused by:", BLACK);
let _ = shell.err().say(format!(" {}", err.description()), BLACK);
- err.cause().map(|e| handle_cause(e, shell));
+ if let Some(e) = err.cause() {
+ handle_cause(e, shell)
+ }
}
pub fn version() -> String {
out.push_str(format!("name = {}\n", lookup(dep, "name")).as_slice());
out.push_str(format!("version = {}\n", lookup(dep, "version")).as_slice());
- dep.find(&"source".to_string()).map(|_| {
+ if dep.contains_key(&"source".to_string()) {
out.push_str(format!("source = {}\n", lookup(dep, "source")).as_slice());
- });
+ }
- dep.find(&"dependencies".to_string()).map(|s| {
+ if let Some(ref s) = dep.find(&"dependencies".to_string()) {
let slice = s.as_slice().unwrap();
if !slice.is_empty() {
out.push_str("]\n");
}
out.push_str("\n");
- });
+ }
}
fn lookup<'a>(table: &'a toml::TomlTable, key: &str) -> &'a toml::Value {
None => "never executed".to_string()
};
try!(write!(f, "{} (status={})", self.msg, exit));
- self.output().map(|out| { let _ = write!(f, "{}", out); });
+ if let Some(out) = self.output() {
+ try!(write!(f, "{}", out));
+ }
Ok(())
}
}